﻿using my.abp.Domain.Shared.Entities;
using my.abp.Domain.Shared.Enums;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Domain.Services;

namespace my.abp.Domain.IManagers.User
{
	public interface ISysUserManager : IDomainService
	{
		public Task<List<SysUser>> ListAsync(string Name, string Account, long OrgId, int pageNumber, int pageSize, RefAsync<int> total);
		public Task<long> AddUser(SysUser user, List<long> RoleIdList, List<long> ExtOrgIdList);
		public Task UpdateUser(SysUser user, List<long> RoleIdList, List<long> ExtOrgIdList);
		public Task<SysUser> GetAsync(string Account);
		public Task DeleteUser(SysUser input);
		public Task<SysUser> GetBaseInfo();
		public Task<int> UpdateBaseInfo(SysUser user);
		public Task<int> SetStatus(long Id, StatusEnum Status);
		public Task GrantRole(long UserId, List<long> RoleIdList);
		public Task<int> ChangePwd(string PasswordOld, string PasswordNew);

		public Task<string> ResetPwd(long Id);
	}
}
